import tips from "@/utils/tips";

// 复制文本
export const copyText = (text : string) => {
	uni.setClipboardData({
		data: text,
		success: () => {
			tips.showToast('复制成功')
		},
		fail: () => {
			tips.showToast('复制失败')
		}
	});
}

// 预览图片
export const previewImg = (urls:Array<string>,current:string|number) => {
	uni.previewImage({
		urls,
		current,
		longPressActions: {
			itemList: ['发送给朋友', '保存图片', '收藏'],
			success: function(data) {
				console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
			},
			fail: function(err) {
				console.log(err.errMsg);
			}
		}
	});
}

// 获取当前页面路由
export const getCurrentRoute = ():string => {
	const pages = getCurrentPages()
	return pages[pages.length-1].route
}

// 跳转页面
export const skip = {
	navigateTo : (url:string) => {
		uni.navigateTo({url}).then(r => {})
	},
	switchTab : (url:string) => {
		uni.switchTab({url}).then(r => {})
	},
	redirectTo : (url:string) => {
		uni.redirectTo({url}).then(r => {})
	},
	navigateBack:(delta:number = 1)=> {
		uni.navigateBack({delta}).then(r => {})
	},
	reLaunch:(url:string)=>{
		uni.reLaunch({url}).then(r => {})
	}
}

// 计算时间差
export const calcGapTime = (curTime:string,preTime:string) => {
	let cur = Date.parse(curTime)
	let pre = Date.parse(preTime)

	const minutes = Math.floor(Math.abs(cur - pre) / 60000);
	const hours = Math.floor(minutes / 60);
	const day = Math.floor(hours / 24);

	if (day >= 1) {
		return `${day}天`
	}else if (hours >= 1){
		return `${hours}小时`
	}else{
		return `${minutes}分钟`
	}
}

// 转换时间戳
export const transformTime = (time = +new Date()) => {
	let date = new Date(Number(time) + 8 * 3600 * 1000); // 增加8小时
	return date.toJSON().slice(0, 19).replace('T', ' ');
}

/**
 * @description 时间戳转时间
 * @param {Number} date
 * @param {Number} AddDayCount
 * @return {Object} 时间
 */
export const getDate = (date:any, AddDayCount: number = 0): Object => {
	if (!date) {
		date = new Date()
	}
	const dd = new Date(date)

	dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期

	const y = dd.getFullYear()
	const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期，不足10补0
	const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号，不足10补0
	const h = dd.getHours() < 10 ? '0' + dd.getHours() : dd.getHours() // 获取时钟，不足10补0
	const mi = dd.getMinutes() < 10 ? '0' + dd.getMinutes() : dd.getMinutes() // 获取分钟，不足10补0
	const s = dd.getSeconds() < 10 ? '0' + dd.getSeconds() : dd.getSeconds() // 获取秒钟，不足10补0
	return {
		fullDate: y + '-' + m + '-' + d + ' ' + h + ':' + mi + ':' + s,
		year: y,
		month: m,
		date: d,
		hours: h,
		minutes: mi,
		seconds: s,
		day: dd.getDay(),
	}
}

// 保存图片到相册
export const savePhoto = (filePath:string) => {
	// #ifdef H5
		let oA = document.createElement("a");
		oA.download = ''; // 设置下载的文件名，默认是'下载'
		oA.href = filePath;
		oA.target = '_blank';
		document.body.appendChild(oA);
		oA.click();
		oA.remove(); // 下载之后把创建的元素删除
	// #endif

	// #ifndef H5
		tips.showLoading('下载中')
		// 本地路径开头使用file://，跟上手机文件本地目录storage/emulated/0，
		// 这时用户文件管理器能看到的了，之后创建 跳蚤 作为文件夹，
		// 后缀是用于文件命名和格式修改，大家可以使用变量。
		let dtask = plus.downloader.createDownload(filePath, {
			filename: "file://storage/emulated/0/跳蚤/" + Date.now() + '.pdf' //利用保存路径，实现下载文件的重命名
		},(d, status)=> {
			//d为下载的文件对象
			tips.hideLoading()
			if (status == 200) {
				tips.showToast('已保存到文件夹')
				//下载成功,d.filename是文件在保存在本地的相对路径，使用下面的API可转为平台绝对路径
				// let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
				// console.log(fileSaveUrl)
				plus.runtime.openFile(d.filename); //选择软件打开文件
			} else {
				//下载失败
				plus.downloader.clear(); //清除下载任务
				tips.showToast('下载失败，请稍后重试')
			}
		})
		dtask.start();

	// #endif
}

// 打开预览文件
export const openDocument = (url:string) => {
	// #ifdef H5
		let oA = document.createElement("a");
		oA.download = ''; // 设置下载的文件名，默认是'下载'
		oA.href = url;
		document.body.appendChild(oA);
		oA.click();
		oA.remove(); // 下载之后把创建的元素删除
	// #endif

	// #ifndef H5
		uni.downloadFile({
			url: url,
			success: (res) => {
				if (res.statusCode === 200) {
					uni.openDocument({
						filePath: res.tempFilePath,
						// 如果文件名包含中文，建议使用escape(res.tempFilePath)转码，防止ios和安卓客户端导致的差异
						success: function() {
							console.log('打开文档成功');
						}
					});
				}
			}
		})
	// #endif
}





